package com.qf.feign;

import com.qf.conf.FeignLogConfig;
import com.qf.pojo.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 在当前应用的容器中，生成一个代理对象
 *  这个代理对象中其实封装的逻辑是
 *          restTemplate.getForObject("http://QF-ORDER/order/" + id, R.class);
 *
 *  而且这个代理对象中已经集成了负载均衡， 负载均衡使用的是就是Ribbon
 */

//通过fallback配置feign层面的降级方法
@FeignClient(value = "QF-ORDER",fallback = OrderServiceFeignFallback.class,configuration = FeignLogConfig.class)
public interface OrderServiceFeign {

    @GetMapping("/order/{id}")
    public R findByUid(@PathVariable("id") Integer id);

}
